635 research outputs found

    The key to employability: developing a practical model of graduate employability

    Get PDF
    Purpose – The purpose of this paper is to introduce a straightforward, practical model of employability that will allow the concept to be explained easily and that can be used as a framework for working with students to develop their employability. Design/methodology/approach – The model was developed from existing research into employability issues and the experience of the authors. The various elements of employability included in the model are discussed and their inclusion justified on the basis of existing research. Findings – The model sets out exactly what is meant by employability, in clear and simple terms, and the model suggests directions for interaction between the various elements. Research limitations/implications – The relationships between and the interaction of the elements within the model remain theoretical. Further research to test the model is planned and will be reported on at a later date. Practical implications – The model can be used to explain the concept of employability to those new to the subject, and particularly to students and their parents. It will be a useful tool for lecturers, personal tutors, careers advisors and any other practitioners involved in employability activities. It will also be used to develop a measurement tool for employability. Originality/value – This paper seeks to fill the gap between in-depth, scholarly and complex articles or books about employability and very simple descriptive articles. It will be of value to anybody with an interest in employability issues

    Moving from conceptual ambiguity to operational clarity: Employability, enterprise and entrepreneurship in higher education

    Get PDF
    Purpose – The purpose of this paper is to discuss how the terms “employability”, “enterprise” and “entrepreneurship” are currently being used, often interchangeably, within higher education, and to propose how to clarify this issue with the terminology. Design/methodology/approach – The approach taken is to discuss the three terms and some of their current conceptualisations and suggest ways to clarify the terminology. Possible methods of operationalising the three concepts within higher education are also suggested. Findings – Employability, enterprise and entrepreneurship are high on the agendas of many higher education institutions. There is a crucial need for agreement on definitions particularly when strategies are being implemented. It is suggested that currently the terminology is often used carelessly and interchangeably, resulting in confusion for HE staff, students and employers. Originality/value – The paper offers a clear way of defining the concepts and will be of value to anybody with an interest in employability, enterprise or entrepreneurship within higher education

    From rewrite rules to bisimulation congruences

    Get PDF
    AbstractThe dynamics of many calculi can be most clearly defined by a reduction semantics. To work with a calculus, however, an understanding of operational congruences is fundamental; these can often be given tractable definitions or characterisations using a labelled transition semantics. This paper considers calculi with arbitrary reduction semantics of three simple classes, firstly ground term rewriting, then left-linear term rewriting, and then a class which is essentially the action calculi lacking substantive name binding. General definitions of labelled transitions are given in each case, uniformly in the set of rewrite rules, and without requiring the prescription of additional notions of observation. They give rise to bisimulation congruences. As a test of the theory it is shown that bisimulation for a fragment of CCS is recovered. The transitions generated for a fragment of the Ambient Calculus of Cardelli and Gordon, and for SKI combinators, are also discussed briefly

    Process Calculi: The End of the Beginning? (From Thought Experiments to Experimental Semantics)

    Get PDF
    AbstractThis note reflects, from a Process Calculus point of view, on lessons learned during research modelling the real-world TCP and UDP network protocols

    Clarifying and compiling C/C++ concurrency: from C++11 to POWER

    Get PDF
    The upcoming C and C++ revised standards add concurrency to the languages, for the first time, in the form of a subtle *relaxed memory model* (the *C++11 model*). This aims to permit compiler optimisation and to accommodate the differing relaxed-memory behaviours of mainstream multiprocessors, combining simple semantics for most code with high-performance *low-level atomics* for concurrency libraries. In this paper, we first establish two simpler but provably equivalent models for C++11, one for the full language and another for the subset without consume operations. Subsetting further to the fragment without low-level atomics, we identify a subtlety arising from atomic initialisation and prove that, under an additional condition, the model is equivalent to sequential consistency for race-free programs

    New England Coral Canyons and Seamounts

    Get PDF
    Just 150 miles off the coast of Cape Cod lie some of our country's greatest marine treasures. Hidden beneath thousands of feet of ocean, where the continental shelf drops off to the pitch-black abyss of the deep Atlantic Ocean, five massive canyons plunge down, some deeper than the Grand Canyon. Just beyond these canyons, four extinct underwater volcanoes – called seamounts – rise as high as 7,700 feet above the ocean floor, higher than any mountain east of the Rockies and the only such seamounts in U.S. Atlantic waters. The plunging walls and deep floors of the canyons and the towering slopes of the seamounts are alive with vivid coldwater corals of otherworldly beauty – some the size of small trees and centuries, if not thousands of years, old. These corals, together with other structure-forming fauna including sponges and anemones, form a foundation for vibrant deep-sea ecosystems, providing food, spawning habitat, and shelter for an array of fish and invertebrate species. The varied habitats and strong and complex currents of the canyons and seamounts also support significant and diverse concentrations of marine life throughout the water column. These deep-sea biodiversity hotspots are sites of active scientific exploration, investigations and discovery. The canyons and seamounts proposed for designation represent tremendous opportunities for further scientific exploration and education around deep-sea ecosystems. Importantly, these remote and relatively pristine areas function as a scientific reference site, giving researchers the chance to advance our understanding of undisturbed nature in a world otherwise transformed by humans. In recognition of this area's value, 141 eminent ocean scientists from 84 research institutions, along with the three major New England Aquaria and 226 accredited aquaria from around the world, have urged robust long-term protections for these "particularly outstanding examples" of New England's canyons and seamounts

    Synchronising C/C++ and POWER

    Get PDF
    Shared memory concurrency relies on synchronisation primitives: compare-and-swap, load-reserve/store-conditional (aka LL/SC), language-level mutexes, and so on. In a sequentially consistent setting, or even in the TSO setting of x86 and Sparc, these have well-understood semantics. But in the very relaxed settings of IBMÂŽ, POWERÂŽ, ARM, or C/C++, it remains surprisingly unclear exactly what the programmer can depend on. This paper studies relaxed-memory synchronisation. On the hardware side, we give a clear semantic characterisation of the load-reserve/store-conditional primitives as provided by POWER multiprocessors, for the first time since they were introduced 20 years ago; we cover their interaction with relaxed loads, stores, barriers, and dependencies. Our model, while not officially sanctioned by the vendor, is validated by extensive testing, comparing actual implementation behaviour against an oracle generated from the model, and by detailed discussion with IBM staff. We believe the ARM semantics to be similar. On the software side, we prove sound a proposed compilation scheme of the C/C++ synchronisation constructs to POWER, including C/C++ spinlock mutexes, fences, and read-modify-write operations, together with the simpler atomic operations for which soundness is already known from our previous work; this is a first step in verifying concurrent algorithms that use load-reserve/store-conditional with respect to a realistic semantics. We also build confidence in the C/C++ model in its own terms, fixing some omissions and contributing to the C standards committee adoption of the C++11 concurrency model

    Mathematizing C++ concurrency

    Get PDF
    Shared-memory concurrency in C and C++ is pervasive in systems programming, but has long been poorly defined. This motivated an ongoing shared effort by the standards committees to specify concurrent behaviour in the next versions of both languages. They aim to provide strong guarantees for race-free programs, together with new (but subtle) relaxed-memory atomic primitives for high-performance concurrent code. However, the current draft standards, while the result of careful deliberation, are not yet clear and rigorous definitions, and harbour substantial problems in their details. In this paper we establish a mathematical (yet readable) semantics for C++ concurrency. We aim to capture the intent of the current (`Final Committee') Draft as closely as possible, but discuss changes that fix many of its problems. We prove that a proposed x86 implementation of the concurrency primitives is correct with respect to the x86-TSO model, and describe our Cppmem tool for exploring the semantics of examples, using code generated from our Isabelle/HOL definitions. Having already motivated changes to the draft standard, this work will aid discussion of any further changes, provide a correctness condition for compilers, and give a much-needed basis for analysis and verification of concurrent C and C++ programs

    Acute: high-level programming language design for distributed computation

    No full text
    Existing languages provide good support for typeful programming of standalone programs. In a distributed system, however, there may be interaction between multiple instances of many distinct programs, sharing some (but not necessarily all) of their module structure, and with some instances rebuilt with new versions of certain modules as time goes on. In this paper we discuss programming language support for such systems, focussing on their typing and naming issues. We describe an experimental language, Acute, which extends an ML core to support distributed development, deployment, and execution, allowing type-safe interaction between separately-built programs. The main features are: (1) type-safe marshalling of arbitrary values; (2) type names that are generated (freshly and by hashing) to ensure that type equality tests suffice to protect the invariants of abstract types, across the entire distributed system; (3) expression-level names generated to ensure that name equality tests suffice for type-safety of associated values, e.g. values carried on named channels; (4) controlled dynamic rebinding of marshalled values to local resources; and (5) thunkification of threads and mutexes to support computation mobility. These features are a large part of what is needed for typeful distributed programming. They are a relatively lightweight extension of ML, should be efficiently implementable, and are expressive enough to enable a wide variety of distributed infrastructure layers to be written as simple library code above the byte-string network and persistent store APIs. This disentangles the language runtime from communication intricacies. This paper highlights the main design choices in Acute. It is supported by a full language definition (of typing, compilation, and operational semantics), by a prototype implementation, and by example distribution libraries
    • …
    corecore